package cn.iocoder.yudao.module.dispatch.service.runningstate;

import java.util.*;
import javax.validation.*;
import cn.iocoder.yudao.module.dispatch.controller.admin.runningstate.vo.*;
import cn.iocoder.yudao.module.dispatch.dal.dataobject.runningstate.RunningStateDO;
import cn.iocoder.yudao.framework.common.pojo.PageResult;
import com.baomidou.dynamic.datasource.annotation.DS;

/**
 * 参数 Service 接口
 *
 * @author 左达成
 */
public interface RunningStateService {

    @DS("mssql")
    List<RunningStateDO> findAll();

    List<RunningStateDO> findByPage(Integer page);


    /**
     * 创建参数
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    Integer createRunningState(@Valid RunningStateCreateReqVO createReqVO);

    /**
     * 更新参数
     *
     * @param updateReqVO 更新信息
     */
    void updateRunningState(@Valid RunningStateUpdateReqVO updateReqVO);

    /**
     * 删除参数
     *
     * @param id 编号
     */
    void deleteRunningState(Integer id);

    /**
     * 获得参数
     *
     * @param id 编号
     * @return 参数
     */
    RunningStateDO getRunningState(Integer id);

    /**
     * 获得参数列表
     *
     * @param ids 编号
     * @return 参数列表
     */
    List<RunningStateDO> getRunningStateList(Collection<Integer> ids);

    /**
     * 获得参数分页
     *
     * @param pageReqVO 分页查询
     * @return 参数分页
     */
    PageResult<RunningStateDO> getRunningStatePage(RunningStatePageReqVO pageReqVO);

    /**
     * 获得参数列表, 用于 Excel 导出
     *
     * @param exportReqVO 查询条件
     * @return 参数列表
     */
    List<RunningStateDO> getRunningStateList(RunningStateExportReqVO exportReqVO);

}
